import 'dart:ui';

import 'package:flutter/cupertino.dart';

class TextUtils {
  ///计算文本大小
  static Size calculateTextSize(
    BuildContext context, //当前界面上下文
    String value, //文本内容
    double fontSize, //文字的大小
    FontWeight fontWeight, //文字权重
    double maxWidth, //文本框的最大宽度
    int maxLines, //文本支持最大多少行
  ) {
//过滤文本
//   value = filterText(value);
//防呆
    if (value == null || value.isEmpty) {
      return Size.zero;
    }
//TextPainter
    TextPainter painter = TextPainter(
      //AUTO：华为手机如果不指定locale的时候，该方法算出来的文字高度是比系统计算偏小的。
      locale: Localizations.localeOf(context),
      maxLines: maxLines,
      textDirection: TextDirection.ltr,
      text: TextSpan(
        text: value,
        style: TextStyle(
          fontWeight: fontWeight,
          fontSize: fontSize,
        ),
      ),
    );
//设置layout
    painter.layout(minWidth: maxWidth);
//文字的Size
    return painter.size;
  }
}
